home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / bavarian / 121-130 / 123_d_m_e / dme_deutsch / anleitung next >
Text File  |  1993-11-04  |  49KB  |  878 lines

  1. Anleitung zu DME :
  2.  
  3.                         KURZBESCHREIBUNG
  4.  
  5.  DME ist ein komfortabler Texteditor. Er wurde von Matt Dillon geschrieben,
  6. der auch alle Copyrights auf dieses Programm besitzt ( ich hoffe, damit habe
  7. ich allen Pflichten genüge getan ).
  8.  Zur Zeit ist die Version 1.30 erhältlich auf der FISH-Disk 153. Das Programm
  9. ist reine Public Domain, also keine SHAREWARE. Es werden einige Hilfs-
  10. dateien mitgeliefert, die ich später noch erläutern werde. Außerdem ist
  11. eine ausführliche Beschreibung dabei, allerdings in Englisch. Die Sourcecode-
  12. Files sind beim Autor erhältlich. Falls Unklarheiten bestehen, sollte
  13. entweder unter der folgenden Adresse nachgefragt werden oder das Original-
  14. handbuch konsultiert werden.
  15.  Die deutsche Beschreibung von DME stammt von PETER FISCHER, RP-EBERT-STR. 6,
  16. 3257 SPRINGE 1 und wurde für das Diskettenmagazin GetIt angefertigt. Sie kann
  17. beliebig kopiert werden, solange die Adresse in diesem Text verbleibt und
  18. mit kopiert wird. Dies ist KEINE Übersetzung des Originals DME.DOC. Für
  19. eventuelle Fehler und daraus resultierenden Folgen wird keine Haftung
  20. übernommen.
  21.  Dieses Handbuch wurde für den Anfänger geschrieben. Daher möchte ich die
  22. PD-Profis bitten, einige besonders ausschweifende Textstellen mit einer
  23. Erinnerung an ihre Anfänge zu überlesen. Die Anfänger möchte ich bitten,
  24. besonders unverständliche Textpassagen zwei- bis dreimal zu lesen, bevor
  25. ihr mir dann zornerfüllt schreibt. Habt keine Angst, etwas auszuprobieren.
  26. Nur so lernt man mit dem Rechner und den Programmen umzugehen. Aber bitte,
  27. denkt dran : ERST eine Sicherungskopie ziehen und NICHT an einem wichtigen
  28. Dokument rumwurschteln, wenn es noch nicht abgespeichert ist.
  29.  
  30.                          MÖGLICHKEITEN
  31.  
  32.  Im Gegensatz zu ED, dem AmigaDOS-Editor, ist DME ein leicht lernbarer,
  33. komfortabel zu bedienender Editor. Er besitzt eine einfache Möglichkeit
  34. der Anpassung auf individuelle Wünsche. Eine etwas ausgefallene Art der
  35. Makroprogrammierung ist der Clou.
  36.  
  37.                             ANFANG
  38.  
  39.  DME wird vom CLI mit
  40. > DME filename
  41. aufgerufen, wobei filename der zu editierende File ist. Von der Workbench
  42. muß zuerst der Textfile angeklickt werden, und, während man SHIFT gedrückt
  43. hält, das ICON von DME. Man kann natürlich auch DME als TOOL im INFO-File
  44. angeben. Falls DME von der Workbench aufgerufen wurde, so wird ein ICON
  45. mit dem Text abgespeichert.
  46.  Wenn man den Filenamen des zu bearbeitenden Textfiles fortläßt, wird zuerst
  47. ein Text ohne Namen produziert, der später abgespeichert werden kann.
  48.  Im folgenden werden einige Abkürzungen für Tastennamen benutzt. Dabei steht
  49. 1)
  50.    SH     oder s-     für eine der beiden SHIFT-Tasten,
  51.    CRTL   oder c-     für eine der beiden CONTROL-Tasten ( die mit dem Pfeil
  52.                                                            nach oben ),
  53.    ALT    oder a-     für eine der beiden ALT-Tasten,
  54.    AMIGA  oder A-     für eine der beiden AMIGA-Tasten,
  55.    LM     oder L-     für die linke Maustaste,
  56.    RM     oder R-     für die rechte Maustaste,
  57.  
  58. 2)
  59.    RET                für die RETURN-Taste,
  60.    ENTER              für die ENTER-Taste des Nummernblocks,
  61.    Fx                 für die Funktionstaste mit der Nummer x,
  62.    BS                 für die BACKSPACE-Taste ( die mit dem Pfeil nach links
  63.                                                 im Hauptteil der Tastatur ),
  64.    DEL                für die DELETE-Taste,
  65.    HELP               für die HELP-Taste,
  66.    TAB                für den Tabulator,
  67.    CL                 für CAPS LOCK,
  68.    ESC                für die ESC-Taste,
  69.    UP                 für die CURSOR-Steuerungstaste nach oben,
  70.    DOWN               für die CURSOR-Steuerungstaste nach unten,
  71.    LEFT               für die CURSOR-Steuerungstaste nach links,
  72.    RIGHT              für die CURSOR-Steuerungstaste nach rechts,
  73.    BLANK              für ein Leerzeichen,
  74.                 nkx   für die Tasten x des Nummernblocks außer ENTER,[,].
  75.  
  76. Die Tasten der Gruppe 1) werden als QUALIFIERS bezeichnet.
  77.  
  78.                            TEXTEINGABE
  79.  
  80.  Als erstes erscheint nach dem Aufruf von DME ein Fenster. In diesem Fenster
  81. wird im folgenden der Text eingegeben. Hier wird auch eine sehr schöne
  82. Eigenschaft von DME sichtbar : Der Editor besitzt alle Gadgets, die zum
  83. Arbeiten auf dem AMIGA notwendig sind. Da ist links oben das CLOSEGADGET
  84. ( ich erspare mir die deutschen Übersetzungen, SCHLIESSKNOPF hört sich
  85. einfach nicht gut an ), mit dem der Editor ohne Abspeichern des Textes
  86. verlassen werden kann. Die Titelzeile, in der meist aktuelle und maximale
  87. Zeile sowie aktuell Spalte, der Filename sowie einige weitere Mitteilungen
  88. stehen, wird auch als DRAGGADGET zum Verschieben des Windows benutzt. Rechts
  89. oben in der Titelzeile sind noch die beiden Geschwister BACK- und FRONTGADGET
  90. untergebracht, mit der das DME-Fenster hinter andere Fenster gebracht werden
  91. kann bzw wieder nach vorne geholt wird. Unten rechts ist das SIZEGADGET, mit
  92. der DME auf die notwendig Größe verkleinert oder vergrößert werden kann.
  93.  Alternativ werden in der Titelzeile des öfteren auch Fehlermeldungen
  94. auftauchen.
  95.  DME kann also allen beliebigen Konfigurationen angepaßt werden. Ob dies
  96. PAL- oder NTSC-Bildschirm, HIGHRES, LOWRES oder gar INTERLACE ist, DME wird
  97. einfach entsprechend vergrößert, wie man dies von allen Fenstern gewöhnt ist.
  98. ( Im folgenden werde ich statt WINDOWS den Begriff FENSTER und statt SCREEN
  99. den Begriff BILDSCHIRM benutzen. )
  100.  Ein Beispiel für eine Titelzeile lautet :
  101. 101/860    10 dme.doc (modified)
  102. Die 101 steht für die Zeile, in der sich gerade der Cursor befindet. Die 860
  103. gibt die Zahl der Zeilen an, die sich im Moment im Speicher befinden. Die
  104. folgende 10 zeigt die Spalte des Cursors. dme.doc ist der Name der Datei.
  105. (modified) bedeutet, daß der Text bereits modifiziert wurde und gespeichert
  106. werden sollte, bevor man den Editor verläßt.
  107.  In die Titelzeile werden auch die Fehlermeldungen sowie zu Beginn einer
  108. Sitzung der Name des Autors und die Copyright-Meldung ausgegeben. Diese
  109. verschwindet aber sofort nach Eingabe einer Zeile.
  110.  
  111.                            BESONDERHEITEN
  112.  
  113.  Solange DME noch nicht gemäß den eigenen Vorstellungen umgestaltet worden
  114. ist, gibt es eine Kleinigkeit, die am Anfang leicht störend wirken kann.
  115. Beim Drücken der rechten Maustaste erscheint nämlich nicht wie gewohnt ein
  116. MENU, sondern das Fenster von DME macht sich ganz klein und verschwindet in
  117. der linken oberen Ecke des Bildschirms. Es wird nur noch der Filename sowie
  118. das CLOSEGADGET angezeigt. Man nennt diese kleine Darstellung, in der das
  119. Fenster inaktiv ist, ICON ( deutsch : Abbild, Ikone ). Es wird zur
  120. Speicherplatzersparnis verwendet, wenn man neben DME noch weitere Prozesse
  121. laufen hat und den Editor nicht immer neu starten möchte. Denkbar ist zum
  122. Beispiel, daß man als Programmierer DME mit dem Quelltext des Programmes
  123. einmal aufruft. Nachdem man seine Änderungen eingefügt hat, wird das Programm
  124. abgespeichert und das DME- Fenster ICONIFIZIERT ( auch hier benutze ich
  125. dieses englische Wort als deutsches Verb. Deutsch-Puristen mögen mir
  126. verzeihen, die Alternativen sind mir zu umständlich. ), soll heißen, zu
  127. einem ICON gemacht. Dann wird das Programm übersetzt. Falls Fehler
  128. auftauchen, braucht der Editor mit dem Programmtext nicht neu geladen werden,
  129. sondern es wird einfach das ICON wieder aktiviert.
  130.  Die ICONS werden aktiviert, indem man mit dem Mauszeiger auf das ICON zeigt
  131. und erst die linke und dann die rechte Maustaste drückt. ( VORSICHT : Bei
  132. anderen Programmen, die ICONS benutzen, ist dies ausschließlich die linke
  133. Maustaste !! ) Aber Vorsicht : Es sollten einige KBytes Speicher übrig sein,
  134. da sonst DME beim Aktivieren unseren Freund, den GURU hervorlockt !
  135.  
  136.  DME hat eine Sondertaste, die für die Befehlseingabe eine wesentliche Rolle
  137. spielt : die ESC-Taste. Wenn man diese Taste drückt, erscheint am unteren
  138. Rand des DME-Fensters eine Zeile, die durch eine waagerechte Linie vom
  139. eingegebenen Text abgetrennt ist. Diese Zeile kann eine Zeile des bereits
  140. geschriebenen Textes überdecken, jedoch erscheint dieser nach Abschluß des
  141. Befehls wieder, wenn die Befehlszeile verschwindet. Eine Beschreibung
  142. der Befehle folgt in Kürze.
  143.  
  144.  Die schönste Eigenschaft DMEs ist wie schon erwähnt, daß dieser Editor an
  145. individuelle Wünsche angepasst werden kann. Dazu kann
  146. - jede Taste nach eigenem Gutdünken mit einer Folge von DME-Befehlen belegt
  147.   werden ( und hier ist wirklich JEDE Taste gemeint ), sogar die Maustasten
  148.   können hier eingebunden werden,
  149. - ein eigenes MENU aufgebaut werden (!!!!),
  150. - die Belegungen in einer Datei abgespeichert werden, die DME vor Beginn
  151.   einer Sitzung automatisch lädt.
  152.  
  153.                               BEFEHLE
  154.  
  155.  DME hat einen reichen Vorrat an Befehlen. Um einen Befehl und die eventuell
  156. dazugehörigen Parameter einzugeben, wird die ESC-Taste wie oben beschrieben
  157. benutzt. Falls man versehentlich die ESC-Taste drückt und keinen Befehl
  158. geben will oder die Befehlseingabe abbrechen möchte, so läßt ein weiterer
  159. Druck auf die ESC-Taste die Befehlseingabezeile wieder verschwinden. Jeder
  160. Befehl wird mit RET abgeschlossen
  161.  
  162.  Der prinzipielle Aufbau eines DME-Befehls lautet wie folgt :
  163. befehl arg1 arg2 ....
  164. befehl ist hierbei der Befehlsname, arg1, arg2, ... sind die notwendigen
  165. Argumente. Falls in einem Argument ein Leerzeichen vorkommt, so muß das
  166. Argument in den Anführungszeichen ` ' geschrieben werden. Dabei ist es sehr
  167. wichtig, daß am Anfang wirklich ein ` ( auf der deutschen AMIGA-Tastatur
  168. links oben ) und am Ende ein ' ( auf der deutschen AMIGA-Tastatur mit ALT-Ä
  169. zu erreichen ) steht. Beispielsweise sieht ein Befehl zum Ersetzen einer
  170. Zeichenkette so aus :
  171. FIND `Dies ist' `Das ist'
  172.  Falls ein Text in eine Tastenkombination eingebunden werden soll, der später
  173. im zu editierenden Text stehen soll, so muß dieser in runden Klammern ()
  174. gesetzt werden. Steuerzeichen können so über (^.) eingebunden werden,
  175. wobei . das Zeichen ist, das für das Steuerzeichen steht. Z.B. wird CRTL-L
  176. mit ESC (^L) RET eingebunden.
  177.  
  178.  Es folgt nun eine kurze Beschreibung aller Befehle. Auf die Besonderheiten
  179. der Befehle wird später eingegangen.
  180.  
  181. Liste der Befehle :
  182.     (text)              Fügt den Text text ein.
  183.     taste               Führt den/die Befehle aus, die unter dieser
  184.                         Taste gespeichert sind.
  185.     menu-punkt          Ein Menupunkt wird ausgeführt.
  186.     ARPLOAD             Ein Filerequestor für das Laden eines Files
  187.                         wird aufgebaut, nur wenn ARP.LIBRARY vorhanden s.u.
  188.     ARPSAVE             Ein Filerequestor für das Speichern eines Files
  189.                         wird aufgebaut, nur wenn ARP.LIBRARY vorhanden s.u.
  190.     BACK                Befehl für BS.
  191.     BACKTAB             Eine Tabulatorstelle nach hinten.
  192.     BCOPY               Kopiert einen Block.
  193.     BDELETE             Löscht einen Block.
  194.     BLOCK               Markiert Blockanfang und Blockende, s.u.
  195.     BMOVE               Ein Block wird veschoben.
  196.     BOTTOM              Setzt den CURSOR auf das Ende des Textes.
  197.     BS                  Befehl für BS, löscht Zeichen links vom CURSOR.
  198.     BSAVE file          Speichert einen Block unter dem Namen file.
  199.     BSOURCE             s.u.
  200.     CHFILENAME name     Ändert den aktuellen Filenamen in name.
  201.     DEL                 Befehl für DEL.
  202.     DELINE              Löscht eine Zeile.
  203.     DOWN                Setzt den CURSOR eine Zeile tiefer.
  204.     DOWNADD             Wie DOWN, nur falls am Ende des Textes angelangt,
  205.                         so wird eine Zeile hinzugefügt.
  206.     ESC                 s.o.
  207.     ESCIMM arg          Die Befehlszeile wird geöffnet und das Argument arg
  208.                         an die erste Stelle geschrieben, so daß eine Befehls-
  209.                         eingabe erfolgen kann.
  210.     EXECUTE comm        Das DOS-Kommando comm wird ausgeführt und auf das
  211.                         Fenster geschrieben, von dem DME aufgerufen wurde.
  212.     FIND string         Sucht nach dem erstmaligen Auftreten von string.
  213.     FINDR s1 s2         Sucht nach dem erstmaligen Auftreten von s1 und
  214.                         ersetzt dies durch s2.
  215.     FINDSTR string      Setzt eine Buchstabenkette, nach der gesucht werden
  216.                         soll. ( siehe auch NEXT )
  217.     FIRST               Setzt den CURSOR in Spalte 1.
  218.     FIRSTNB             Setzt den CURSOR auf das erste Zeichen in der Zeile,
  219.                         in der kein BLANK steht.
  220.     GOTO BLOCK          Geht an den Anfang des markierten Blocks.
  221.     GOTO START          Wie GOTO BLOCK.
  222.     GOTO END            Geht an das Ende des markierten Blocks.
  223.     GOTO [+/-]N         Geht in die relative [+/-] bzw absolute Zeile N.
  224.     HEIGHT N            Setzt für alle folgenden Fenster die Größe N als
  225.                         Fenstergröße fest. N wird in PIXELN angeben.
  226.     ICONIFY             Läßt das Fenster von DME zu einem ICON schrumpfen s.o.
  227.     IF cnd act          Bedingte Abfrage s.u.
  228.     IFELSE cnd ifact elseact
  229.                         Bedingte Abfrage mit alternativer Möglichkeit s.u.
  230.     IGNORECASE what     Stellt ein, ob bei Suche Klein-/Großschreibung
  231.                         ignoriert wird. Dabei ist what=ON für ignorieren,
  232.                         =OFF für nicht ignorieren, =TOGGLE für umschalten.
  233.     INSERTMODE what     Stellt ein, ob neu eingegebene Zeichen eingefügt
  234.                         werden oder die alten überschreiben werden sollen.
  235.                         what=ON : einfügen, what=OFF : überschreiben,
  236.                         what=TOGGLE : umschalten.
  237.     INSFILE name        Die Datei name wird eingefügt.
  238.     INSLINE             Eine Zeile wird eingefügt.
  239.     JOIN                Die nächste Zeile wird an aktuelle Zeile anfügt.
  240.     LAST                Geht auf die letzte Spalte der aktuellen Zeile.
  241.     LEFT                Bewegt den Cursor eine Spalte nach links.
  242.     LEFTEDGE N          Setzt die linke Ecke für jedes weitere Fenster auf
  243.                         N PIXEL fest.
  244.     MAP key map         Der Buchstabe key erhält die Definition map, s.u.
  245.     MARGIN N            Der rechte Rand wird auf N Spalten eingestellt, für
  246.                         WORDWRAP und REFORMAT.
  247.     MENUADD hdr item cmd \
  248.     MENUDEL hdr item      \
  249.     MENUDELHDR hdr         \  Menubefehle s.u.
  250.     MENUCLEAR              /
  251.     MENUON                /
  252.     MENUOFF              /
  253.     NEWFILE name        Neuer File name wird bearbeitet.
  254.     NEWWINDOW           Ein weiteres DME-Fenster wird geöffnet.
  255.     NEXT                Das nächste Auftreten des Suchstrings wird gesucht.
  256.     NEXTR               Das nächste Auftreten des Suchstrings wird gesucht
  257.                         und durch den Ersatzstring ersetzt.
  258.     PAGEDOWN            Eine Seite nach unten, s. PAGESET
  259.     PAGESET n           Gibt in Prozent n an, um wieviele Zeilen der
  260.                         Bildschirm bei PAGEUP und PAGEDOWN verschoben wird.
  261.     PAGEUP              Eine Seite nach oben, s. PAGESET
  262.     PING n              Setzt eine Textmarkierung, n zwischen 0 und 9.
  263.     PONG n              Sucht eine Textmarkierung, n zwischen 0 und 9.
  264.     PREV                Sucht vorheriges Auftreten des Suchstrings.
  265.     PREVR               Sucht vorheriges Auftreten des Suchstrings und
  266.                         ersetzt diesen durch Ersatzstring.
  267.     PUSHMARK            Schiebt den aktuellen Block auf einen Stack und
  268.                         läßt Markierung verschwinden.
  269.     POPMARK             Holt einen Block vom Stack und markiert den Block.
  270.     SWAPMARK            Schiebt aktuellen Block auf Stack, vertauscht die
  271.                         oberen beiden Stackeinträge und holt den obersten
  272.                         Block vom Stack.
  273.     PURGEMARK           Löscht den Stack.
  274.     QUIT                Verläßt den Editor, ohne Anderungen abzuspeichern !
  275.     RECALL              Holt das letzte Kommando zurück. Muß als c-ESC von
  276.                         der Tastatur eingeben werden.
  277.     REF                 s.u.
  278.     REFORMAT            Formatiert den nächsten Absatz innerhalb der ersten
  279.                         Spalte und der durch MARGIN festgesetzten. Ende des
  280.                         Paragraphen : Leerzeile oder Blank in erster Spalte.
  281.     REMEOL              Löscht bis Ende der Zeile.
  282.     REPEAT cnt comm     s.u.
  283.     REPSTR string       Setzt den Ersatzstring mit string.
  284.     RESETTOGGLE N       Schaltet die Boolsche Variable N aus, N zwischen
  285.                         0 und 31.
  286.     RESIZE cols rows    Das aktuelle Fenster wird auf die Größe cols Zeilen
  287.                         und rows Spalten eingestellt.
  288.     RETURN              Zeilenanfang nächste Zeile und neue Zeile einfügen.
  289.     RIGHT               Setzt den Cursor eine Spalte nach rechts.
  290.     RX                  ARexx-Macro aufrufen, s.u.
  291.     RX1                 ARexx-Macro mit einem Argument aufrufen, s.u.
  292.     RX2                 ARexx-Macro mit zwei Argumenten aufrufen, s.u.
  293.     SAVEAS file         Speichert aktuellen Text unter dem Namen file. Der
  294.                         Name des Textes bleibt ungeändert.
  295.     SAVEMAP file        Speichert die aktuelle Belegung der Tasten durch den
  296.                         User unter dem Namen file.
  297.     SAVEOLD             Speichert aktuellen Text unter dem aktuellen Namen.
  298.     SAVESMAP file       Speichert alle aktuellen Belegungen der Tasten unter
  299.                         dem Namen file.
  300.     SAVETABS on/off     Falls on gewählt wird, so werden beim Abspeichern
  301.                         die Tabs als ein Zeichen gespeichert, bei off werden
  302.                         entsprechend viele Blanks gespeichert. Voreingestellt
  303.                         ist off.
  304.     SCANF ctlstr        s.u.
  305.     SCREENBOTTOM        Geht in die Zeile, die auf dem Fenster als unterste
  306.                         steht.
  307.     SCREENTOP           Geht in die Zeile, die auf dem Fenster als oberste
  308.                         steht.
  309.     SCROLLUP            Schiebt das Fenster und den Cursor um eine Zeile
  310.                         nach oben.
  311.     SCROLLDOWN          Schiebt das Fenster und den Cursor um eine Zeile
  312.                         nach unten.
  313.     SETFONT font sz     Setzt einen Font font in der Schriftgröße sz.
  314.     SETTOGGLE N         Setzt die Boolsche Variable N, N zwischen 0 und 31.
  315.     SOURCE file         s.u.
  316.     SPLIT               Trennt die Zeile an der Cursor-Position.
  317.     TAB                 Fügt einen Tabulator ein.
  318.     TABSTOP N           Setzt die Tabs auf N Zeichen.
  319.     TLATE [+/-]N        s.u.
  320.     TOGGLE N            Schaltet die Boolsche Variable N um, N
  321.                         zwischen 0 und 31.
  322.     TOMOUSE             Bewegt den Cursor auf den Mauszeiger.
  323.     TOP                 Setzt den Cursor an den Anfang des Textes.
  324.     TOPEDGE N           Setzt die obere Ecke auf N PIXEL für jedes neue
  325.                         Fenster.
  326.     UNBLOCK             Die Markierung des aktuellen Blocks wird aufgehoben.
  327.     UNMAP key           Die Taste key wird von ihrer Belegung befreit.
  328.     UP                  Setzt den Cursor eine Zeile höher.
  329.     WHILE cnd act       s.u.
  330.     WIDTH N             Setzt die Breite in N PIXEL für jedes neue Fenster.
  331.     WLEFT               Setzt den Cursor auf den Anfang des links stehenden
  332.                         Wortes.
  333.     WORDWRAP what       Schaltet den automatischen Umbruch am Ende einer
  334.                         Zeile, eingestellt durch MARGIN, ein oder aus.
  335.                         what=ON : eingestellt, what=OFF : ausgestellt,
  336.                         what=TOGGLE : umschalten.
  337.     WRIGHT              Setzt den Cursor auf den Anfang des rechts stehenden
  338.                         Wortes.
  339.  
  340.  
  341.                           TASTENBELEGUNG I
  342.  
  343.  Jede Taste der AMIGA-Tastatur kann im DME-Editor mehrfach belegt werden.
  344. Dies geschieht mit dem Befehl MAP. Die Syntax ist
  345.                       MAP key map
  346.  Dabei ist key eine Taste, eventuell stehen vor der Taste ein oder mehrere
  347. Qualifier. Nochmals eine kurze Zusammenfassung der Qualifier :
  348. s          für           SHIFT,
  349. c          für           CONTROL,
  350. a          für           ALT,
  351. A          für           AMIGA,
  352. L          für           linke Maustaste,
  353. R          für           rechte Maustaste,
  354. M          für           evtl. vorhandene mittlere Maustaste.
  355. Die Qualifier werden durch den eigentlichen Tastencode durch ein Minus -
  356. getrennt. Bei den Buchstaben kann statt dem SHIFT-Qualifier auch der Groß-
  357. buchstabe gewählt werden. Einige Qulifierkombinationen sollten nicht benutzt
  358. werden, wie etwa aA für ALT AMIGA, da diese auch von INTUITION des AmigaDOS
  359. benutzt werden.
  360.  map ist eine beliebige syntaktisch richtige Kombination aus den Befehlen,
  361. die DME bietet. Über die mögliche Länge von map schweigt sich leider das
  362. Originalhandbuch aus. Falls ein Befehl mit Argument oder mehr als ein
  363. Befehl benutzt wird muß diese Kombination in einfachen Gänsefüßchen `'
  364. stehen. Dabei ist es wesentlich, daß ` am Anfang steht und ' am Ende.
  365.  Einige Bespiele für Tastenbelegungen werden auf der FISH-Disk 153 auf dem
  366. Directory support mitgeliefert. Natürlich sollte sich jeder seine eigenen
  367. Befehle basteln. Ein Beispiel für eine solche Tastaturbelegung wäre
  368. MAP help `newwindow newfile s:.help'
  369. sofern dieser Doc-File auf dem Directory s: unter dem Namen .help
  370. abgespeichert wird, oder
  371. MAP c-b bottom
  372.  
  373.                           TASTATURBELEGUNG II
  374.  
  375.  Da es wohl etwas mühsam wäre, die Tastaturbelegungen jedes Mal wieder von
  376. Neuem einzugeben, bietet DME die Möglichkeit, einen STARTUP-File anzulegen.
  377. Dieser File muß entweder auf dem aktuellen Directory oder auf dem
  378. Directory s: stehen und den Namen .edrc besitzen. Optional kann auch beim
  379. Aufruf von DME mit der Option -fname ein File name angegeben werden, so daß
  380. aus dem File name die Tastaturbelegung geladen wird.
  381.  Natürlich können in diesem File auch andere Kommandos aufgerufen werden.
  382. Diese werden unmittelbar beim Aufruf ausgeführt.
  383.  Es können auch nachträglich derartige Kommandofiles geladen und ausgeführt
  384. werden. Dies geschieht mit dem Befehl SOURCE file. Falls in dem aktuellen
  385. File einige Zeilen Tastaturbelegungen definiert werden, so können diese
  386. mit BLOCK markiert und dann mit BSOURCE ausgeführt werden. Dies ist
  387. beispielsweise in einem Programmtext als Kommentar denkbar.
  388.  Es wird eine Tastaturbelegung in DME vordefiniert. Sie lautet :
  389.  
  390.     map a-c       `bcopy'
  391.     map a-d       `bdelete'
  392.     map a-down    `scrolldown'
  393.     map a-l       `while cu (tlate +32 right)'
  394.     map a-m       `bmove'
  395.     map a-r       `nextr'
  396.     map a-s       `bsource'
  397.     map a-u       `while cl (tlate -32 right)'
  398.     map a-up      `scrollup'
  399.     map bs        `bs'
  400.     map c-/       `escimm (find )'
  401.     map c-]       `ref'
  402.     map c-1       `goto block'
  403.     map c-b       `block'
  404.     map c-c       `'
  405.     map c-del     `remeol'
  406.     map c-down    `pagedown'
  407.     map c-esc     `recall'
  408.     map c-f       `reformat'
  409.     map c-g       `escimm (goto )'
  410.     map c-i       `insertmode on'
  411.     map c-j       `join'
  412.     map c-l       `wleft'
  413.     map c-n       `next'
  414.     map c-o       `insertmode off'
  415.     map c-p       `prev'
  416.     map c-q       `quit'
  417.     map c-r       `wright'
  418.     map c-s       `split first down'
  419.     map c-u       `unblock'
  420.     map c-up      `pageup'
  421.     map c-w       `wordwrap toggle'
  422.     map del       `del'
  423.     map down      `down'
  424.     map enter     `return'
  425.     map esc       `esc'
  426.     map f1        `escimm (insfile )'
  427.     map f2        `escimm (newfile )'
  428.     map f3        `escimm (newwindow newfile )'
  429.     map f6        `saveold iconify'
  430.     map f7        `escimm (bsave )'
  431.     map f8        `saveold escimm (newfile )'
  432.     map f9        `saveold'
  433.     map f10       `saveold quit'
  434.     map L-lmb     `tomouse'
  435.     map L-mmo     `tomouse'
  436.     map left      `left'
  437.     map R-rmb     `iconify'
  438.     map return    `return insline up firstnb down'
  439.     map right     `right'
  440.     map `s- '     `( )'
  441.     map s-del     `deline'
  442.     map s-down    `bottom'
  443.     map s-left    `first'
  444.     map s-right   `last'
  445.     map s-tab     `backtab'
  446.     map s-up      `top'
  447.     map sa-s      `unblock block block bsource'
  448.     map tab       `tab'
  449.     map up        `up'
  450.  
  451.  
  452.                              CURSORBEWEGUNG
  453.  
  454.  Um komfortabel einen Text editieren zu können, sollte eine Vielzahl von
  455. Cursorbewegungen möglich sein. Dies ist bei DME geradezu vorbildlich
  456. gelöst.
  457.  Vorausgesetzt, die Tasten sind nicht individuell umdefiniert, kann der
  458. Cursor in DME mit folgenden Tasten und Befehlen bewegt werden :
  459. Die Cursor-Tasten sind entsprechend ihren Bedeutungen belegt. Ebenso BS,
  460. DEL, RET und TAB. Durch die Kombination ALT UP bzw ALT DOWN entsprechend
  461. SCROLLUP und SCROLLDOWN wird das Fenster um eine Zeile nach unten bzw nach
  462. oben bewegt, während der Cursor fest bleibt. Mit SHIFT UP bzw SHIFT DOWN
  463. entsprechend TOP bzw BOTTOM wird der Cursor in die erste bzw letzte Zeile
  464. des Textes gesetzt. Mit SCREENTOP bzw SCREENBOTTOM wird der Cursor auf die
  465. erste bzw letzte Zeile des aktuellen Fensters gesetzt. SHIFT TAB geht um
  466. eine Tabulatorstelle zurück und entspricht dem Befehl BACKTAB. Mit dem
  467. Mauszeiger und gedrückter rechter Maustaste kann der Cursor auf eine
  468. beliebige Stelle im Fenster gesetzt werden oder das Fenster nach oben und
  469. unten geschoben werden. Falls eine Zeile zu lang ist, so wird das gesamte
  470. Fenster nach links geschoben.
  471.  Eine besondere Befehlskombination bietet der Befehl PAGESET mit den
  472. Befehlen PAGEDOWN und PAGEUP. Mit PAGESET wird in Prozent bestimmt, um
  473. wieviel mit PAGEDOWN und PAGEUP entsprechend eine Seite hoch und eine
  474. Seite runter das Fenster verschiebt. Eine Seite ist in diesem Fall die Menge
  475. an Text, die vertikal in ein Fenster paßt. Im Normalfall bewegt sich der Wert
  476. von PAGESET zwischen 90 und 100 Prozent. Man kann aber beispielsweise mit
  477. PAGESET 50
  478. angeben, daß das Fenster mit PAGEUP nur um eine halbe Seite verschoben wird.
  479.  Mit GOTO [+/-]N kann man den Cursor um jeweils N Zeilen nach unten
  480. ( GOTO +N ) bzw nach oben ( GOTO -N ) bzw in die Zeile N ( GOTO N ) bewegen.
  481.  
  482.                            SUCHEN & ERSETZEN
  483.  
  484.  Dies geschieht in DME durch Angabe eines Suchstrings string durch den Befehl
  485. FINDSTR string. Mit NEXT kann nach unten und mit PREV nach oben gesucht
  486. werden. Optional kann mit FIND string bereits ein Auftreten des Strings
  487. string gesucht werden. FIND entspricht also der Befehlskombination
  488. `FINDSTR string NEXT'. FIND ist in der Standardbelegung von DME auf der
  489. Taste c-/, NEXT auf c-n.
  490.  Ersetzen eines Strings s1 durch einen String s2 ist möglich über
  491. 1) die Angabe des Suchstrings mit FINDSTR s1,
  492. 2) die Angabe des Ersatzstrings mit REPSTR s2,
  493. 3) dem Befehl NEXTR bzw PREVR zum Ausführen der Ersatzoperation nach unten
  494.    bzw unten jeweils einmal.
  495. Alternativ kann mit dem Befehl FINDR s1 s2 der Suchstring s1 und der
  496. Ersatzstring s2 eingeben und die Ersatzoperation einmal ausgeführt werden.
  497.  Falls das Auftreten eines Strings im gesamten Text ersetzt werden soll, so
  498. geschieht dies über die Befehlskombination
  499. `ESCIMM `FINDR ' REPEAT -1 NEXTR'
  500. ausgeführt werden. Falls für die -1 eine Zahl N geschrieben wird, so wird das
  501. Auftreten des Suchstrings maximal N mal durchgeführt.
  502.  Da es beim Suchen unter Umständen wichtig sein kann, Groß- und Kleinbuch-
  503. staben zu trennen, in anderen Fällen aber als jeweils einen Buchstaben zu
  504. betrachten, gibt es den Befehl IGNORECASE param. IGNORECASE ON schaltet für
  505. die weiteren Suchvorgänge die Unterscheidung zwischen Groß- und Kleinbuch-
  506. staben ab, IGNORECASE OFF schaltet sie wieder ein.
  507.  
  508.  
  509.                           ZEILENOPERATIONEN
  510.  
  511.  Mit INSLINE kann man an der eine Zeile vor der aktuellen einfügen. Mit
  512. JOIN wird die nächste Zeile an die aktuelle angefügt. DELLINE löscht die
  513. aktuelle Zeile, während REMEOL ab der aktuellen Cursorposition bis zum
  514. Ende der Zeile löscht. SPLIT teilt die Zeile an der aktuellen Cursorposition
  515. und schreibt den Rest in die nächste Zeile.
  516.  
  517.                           LADEN & SPEICHERN
  518.  
  519.  Falls man glücklicher Besitzer der ARP.LIBRARY ist, so kann man sehr
  520. bequem Files auswählen : mit einem FILEREQUESTOR. ARP ist die Abkürzung von
  521. AmigaDOS Replacement Project, zu deutsch AmigaDOS Ersatz Projekt. Man kann
  522. gerade bei den AmigaDOS-Befehlen noch einiges verbessern. Dies wurden in
  523. der Reihe ARP getan. Desweiteren wurde eine Library nützlicher Befehle
  524. erstellt, auf die Programme zugreifen können. Unter anderem ist dort auch
  525. ein sehr komfortabler und schneller FILEREQUESTOR implementiert. ARP ist
  526. als PUBLIC DOMAIN auf den RPD 27c und RPD 27d erhältlich.
  527.  In DME kann man mittels den Befehlen ARPLOAD und ARPSAVE auf diesen
  528. FILEREQUESTOR zugreifen. Dann kann der File, der geladen oder gespeichert
  529. werden soll, per Maus ausgewählt werden.
  530.  Natürlich kann man auch ohne ARP.LIBRARY Dateien laden bzw speichern.
  531. Dies wird durch die Befehle NEWFILE name bzw SAVEAS name erreicht. Man kann
  532. aber auch einen File, der bereits einen Namen hat, mit SAVEOLD abspeichern.
  533.  Daneben gibt es noch den Befehl INSFILE name, der die Datei name an der
  534. aktuellen Cursorposition einfügt sowie den File CHFILENAME name, das den
  535. aktuellen Filenamen in name umändert.
  536.  
  537.                          BLOCKOPERATIONEN
  538.  
  539.  Dies ist ein Punkt, in dem DME Nachteile gegenüber anderen Editoren hat. Es
  540. ist nämlich nicht möglich, kleinere Einheiten als eine Zeile zu kopieren.
  541. DME setzt prinzipiell einen Blockanfang am Anfang einer Zeile und das
  542. Blockende an das Ende einer Zeile.
  543.  Die Markierung eines Blocks wird durch BLOCK oder c-b in der
  544. Standardbelegung erreicht. BLOCK muß am Anfang des Blocks und am Ende des
  545. Blocks je einmal aufgerufen werden. Der Block wird dann in der oben
  546. beschriebenen Weise markiert. Sichtbar wird dies, indem die markierten Zeilen
  547. in einer anderen Farbe geschrieben werden. Bei der Festlegung seiner Farben
  548. in PREFERENCES kann man dort schnell eine angenehme Farbzusammenstellung
  549. erreichen.
  550.  Mit dem BLOCK können diverse Operationen durchgeführt werden. Er kann
  551. kopiert werden ( BCOPY oder a-c ), er kann gelöscht werden ( BDELETE oder
  552. a-d ), er kann bewegt werden ( BMOVE oder a-m, entspricht `BCOPY BDELETE' ),
  553. er kann abgespeichert werden ( BSAVE ) oder als Tastaturbelegung abgearbeitet
  554. werden ( BSOURCE oder a-s ).
  555.  Die Markierungen können auch auf einem Stack verwaltet werden. Dazu dienen
  556. die Befehle PUSHMARK, POPMARK, SWAPMARK und PURGEMARK. PUSHMARK schiebt ein
  557. Markierungspaar auf den Stack, POPMARK holt sie wieder runter, SWAPMARK
  558. tauscht aktuelle Markierung und oberste Stackmarkierung aus und PURGEMARK
  559. löscht den Stack.
  560.  Mit GOTO BLOCK oder GOTO START entsprechend c-l kann man an den Anfang eines
  561. markierten Blocks springen, mit GOTO END an das Ende.
  562.  Falls ein Block markiert ist, kann kein zweiter markiert werden. Erst muß
  563. mit UNBLOCK oder c-u die Markierung gelöscht werden.
  564.  
  565.                                 FENSTERLN
  566.  
  567.  Mit DME ist es möglich, mehrere Files gleichzeitig zu bearbeiten. Dazu muß
  568. man mit NEWWINDOW ein weiteres Fenster aufmachen und mit ARPLOAD oder
  569. NEWFILE den neuen File einladen. Das neue Fenster hat dieselbe Größe wie das
  570. aktuelle. Dies kann störend sein, wenn man zwei Files abhängig voneinander
  571. editieren möchte. Es gibt aber wie schon erwähnt die Möglichkeit, die
  572. Fenstergrößen mit der Maus zu verändern.
  573.  Daneben hat man aber auch noch die Kontrolle über die Fenster mit
  574. verschiedenen Befehlen. Man kann das aktuelle Fenster mit RESIZE x y den
  575. gewünschten Maßen anpassen. Dabei werden x und y, anders als bei den im
  576. weiteren erwähnten Befehlen, in Textzeilen x und Textspalten y angegeben.
  577. Diesen Befehl kann man auch in der DME-startup-sequence s:.edrc angeben,
  578. damit das Fenster auf die in der europäischen PAL-Norm übliche Bildschirmhöhe
  579. voll ausgenutzt wird. Mit RESIZE 77 30 bringt man das aktuelle Fenster auf
  580. die maximale Größe.
  581.  Mit allen folgenden wird nicht das aktuelle Fenster, sondern nur die in
  582. Zukunft mit NEWWINDOW eröffneten Fenster beeinflußt. Mit HEIGHT N wird die
  583. Bildschirmhöhe bestimmt. Dabei ist N wie alle weiteren Zahlen zur Festlegung
  584. der Fenstergrößen in PIXEL angegeben. Ein PIXEL ist ein Punkt auf dem
  585. Bildschirm. In INTERLACE, dem Flackermodus, hat ein PAL-Bildschirm 512
  586. Pixel vertikal, ansonsten 256 Pixel. Da im Normalfall der INTERLACE-Modus
  587. nicht zu empfehlen ist, gehe ich im folgenden von maximal 256 PIXELN in der
  588. Vertikalen aus. HEIGHT 256 legt also die Höhe des Bildschirms auf volle
  589. PAL-Größe fest. Mit TOPEDGE N kann man bestimmen, in welcher Höhe die neuen
  590. DME-Fenster beginnen sollen. VORSICHT : DME beginnt ein Fenster im Normalfall
  591. in der Höhe 1, läßt also eine PIXELreihe am oberen Rand frei. So kann man
  592. immer noch die GADGETs des Bildschirms erreichen. Dies entfällt, wenn man
  593. TOPEDGE 0 einstellt. Aber nur so kann man HEIGHT 256 festlegen. Der Wert von
  594. HEIGHT plus dem Wert von TOPEDGE darf also 256 nicht überschreiten.
  595.  Ähnlich sieht die Situation in der Waagrechten aus. Hier lauten die Befehle
  596. WIDTH N und LEFTEDGE N, ganz entsprechend zum Vertikalen. Da die maximale
  597. Auflösung 640 ist, darf hier der Wert von WIDTH plus dem Wert von LEFTEDGE
  598. nicht 640 überschreiten.
  599.  Als besonderes Schmankerl bietet DME die Möglichkeit, die auf dem AMIGA
  600. zur Verfügung stehenden Schriftarten darzustellen. Dies geschieht mit dem
  601. Befehl SETFONT FONT FG, wobei FONT der Name des Fonts ist und FG die
  602. Größe. Dieser FONT muß aber in dem Directory FONTS: vorhanden sein. Die
  603. möglichen Größen eines FONTS mit dem Namen font kann man mit DIR FONTS:font
  604. erfahren.
  605.  Als Einschränkung gilt hier, daß keine proportionale FONTS dargestellt
  606. werden können. Dies sind FONTS, deren Abstand der einzelnen Buchstaben von
  607. der Breite der Buchstaben abhängt.
  608.  
  609.                               TEXTE FORMATIEREN
  610.  
  611.  DME ist in erster Linie als ein Editor zum Eingeben von einfachen Texten
  612. wie Programmtexten gedacht. Daher kann DME nicht alle Möglichkeiten einer
  613. Textverarbeitung großen Stils bieten. Ein paar rudimentäre Befehle stellen
  614. aber einen gewissen Komfort her.
  615.  Als grundlegenster Befehl dient dazu INSERTMODE. Mit INSERTMODE ON legt
  616. man fest, daß neueingegebene Zeichen eingefügt werden, also alle "rechteren"
  617. Zeichen weiter nach rechts geschoben werden. Mit INSERTMODE OFF wird diese
  618. Fähigkeit ausgeschaltet, also werden neu eingegebene Zeichen an die aktuelle
  619. Cursorposition geschrieben und das eventuell daruntergelegene Zeichen
  620. gelöscht. Mit INSERTMODE TOGGLE wird der aktuelle Zustand umgekehrt.
  621.  Mit MARGIN N kann man den rechten Rand des Textes festlegen, wobei N in
  622. Textspalten angegeben wird . Mit REFORMAT kann man dann einen Paragraphen
  623. formatieren, so daß dieser genau zwischen dem linken Rand, der immer in der
  624. ersten Textspalte liegt, und dem mit MARGIN eingestellten rechtem Rand paßt.
  625.  Ein weiterer Befehl, der das Textaussehen bestimmt, ist WORDWRAP. WORDWRAP
  626. hat ein Argument, daß entweder ON oder OFF oder TOGGLE sein kann. Bei
  627. WORDWRAP ON wird der Umbruch eingestellt, bei WORDWRAP OFF ausgestellt und
  628. bei WORDWRAP TOGGLE wird der jeweils aktuelle Zustand verändert, aus ON
  629. wird also OFF und umgekehrt.
  630.  WORDWRAP dient zur Begrenzung der Zeilen. Wenn eine Zeile den mit MARGIN
  631. eingestellten rechten Rand überschreitet, so wird das letzte Wort bei
  632. eingeschaltetem Umbruch an den Anfang der nächsten Zeile gepackt und der
  633. Cursor hinter dieses Wort plaziert.
  634.  
  635.                                    MENUS
  636.  
  637.  Eine der faszinierenden Möglichkeiten ist die individuelle Festlegung von
  638. MENUS. Dies kann in der DME-startup-sequence s:.edrc geschehen.
  639.  Die Befehle dazu sind MENUON, MENUOFF, MENUADD, MENUDEL, MENUDELHDR und
  640. MENUCLEAR. Wenn man sich eigene MENUS erstellt, sollte zuerst mit MENUON die
  641. Menuleiste abgestellt werden, da sonst die weitere Bearbeitung sehr
  642. verlangsamt wird. Als nächstes kann mit MENUADD ein Menupunkt addiert
  643. werden. Dabei hat MENUADD drei Parameter. Der erste gibt den Menukopf an,
  644. der zweite den Menupunkt und der dritte die auszuführende Befehlssequenz.
  645. Die Menuköpfe sieht man, wenn man die rechte Maustaste in einem aktiven
  646. Fenster drückt, die Menupunkte, wenn man den Mauszeiger mit gedrücktem
  647. rechten Mausknopf auf einen Menukopf führt. Auswählen kann man einen
  648. Menupunkt dann, indem man die linke Maustaste drückt.
  649.  Bei MENUADD sollte man sich im wesentlichen an die Regeln halten, die
  650. COMMODORE für Programme auf dem AMIGA aufgestellt hat. Dazu gehört, daß
  651. der erste Menukopf PROJEKT oder PROJECT heißt und alle wichtigen Operationen
  652. enthält, die in allen Programmen immer wieder auftauchen, wie Laden und
  653. Speichern eines Files und Beenden eines Programms.
  654.  Als dritter Befehl wird dann MENUON benutzt, um die Menuleiste zu
  655. aktivieren.
  656.  Um nun den ganzen Vorgang ein wenig transparenter zu machen, gebe ich ein
  657. Beispiel, wie eine solche Folge zur Erstellung eines Menus aussehen könnte.
  658. MENUOFF
  659. MENUADD `PROJEKT' `Laden' `IF m `SAVEOLD' ESCIMM `NEWFILE ''
  660. MENUADD `PROJEKT' `Speichern' `SAVEOLD'
  661. MENUADD `PROJEKT' `Speichern als' `ESCIMM `SAVEAS ''
  662. MENUADD `PROJEKT' `Ende' `IF m `SAVEOLD' QUIT'
  663. MENUADD `PROJEKT' `Abbruch' `QUIT'
  664. MENUADD `AKTION' `Drucken' `SAVEAS prt:'
  665. MENUADD `AKTION' `Neuer Filename' `ESCIMM `CHFILENAME ''
  666. MENUON
  667. Dazu eine Anmerkungen :
  668. Einige der Befehle werden erst im folgenden besprochen. Trotzdem verwende
  669. ich sie schon hier, damit eine endgültige Version präsentiert werden kann.
  670. Natürlich können fast beliebig Befehle hinzugefügt werden, zumindest solange,
  671. bis die Menuzeile oder einer der Menuunterpunkte voll ist.
  672.  Die restlichen drei Befehle dienen der Flurbereinigung. Mit
  673. MENUDEL kopf punkt kann man den Menupunkt punkt im Menukopf kopf löschen.
  674. Natürlich sollte dieser Punkt vorhanden sein. Mit MENUDELHDR kopf kann man
  675. einen ganzen Kopf löschen und mit MENUCLEAR das ganze Menu.
  676.  
  677.                              KONTROLLEN
  678.  
  679.  DME bietet eine Reihe von Abfragen. Die einfachste lautet IF bed aktion.
  680. Dabei ist bed eine der gleich folgenden Bedingungen und aktion die unter
  681. der Bedingung auszuführende Aktion. Es folgt nun eine Liste der Bedingungen :
  682. t       = in erster Zeile?
  683. b       = in letzter Zeile ?
  684. l       = in erster Spalte ?
  685. r       = in letzter Spalte, nur noch Blanks dahinter ?
  686. m       = wurde der Text modifiziert ?
  687. i       = im INSERTNODUS ?
  688. x <=> n = der Cursor ist in der n.ten Spalte ( = ), entsprechend mit
  689.           größer ( > ) und kleiner ( < ) bzw entsprechende Kombinationen
  690.           davon ?
  691. y <=> n = wie x <=> n, nur Abfrage auf Zeile.
  692. cl      = das Zeichen unter dem Cursor ist ein Kleinbuchstabe ( a - z ) ?
  693. cu      = das Zeichen unter dem Cursor ist ein Großbuchstabe ( A - Z ) ?
  694. ca      = das Zeichen unter dem Cursor ist ein alpha-numerisches Zeichen,
  695.           also Groß-, Kleinbuchstabe oder Ziffer ?
  696. cn      = das Zeichen unter dem Cursor ist eine Ziffer ( 0 - 9 ) ?
  697. c <=> n = die ASCII-Darstellung des Zeichens unter dem Cursor wird
  698.           entsprechend der angegebenen Relation ( =, <, >, <=, => ) mit der
  699.           Zahl n ( dezimal ) verglichen.
  700. Ein ! vor der Bedingung gilt als logisches NOT. Beispiele für die Abfrage
  701. werden am Ende dieses Paragraphen erläutert, einige kann man schon in den
  702. Beispielen für die Menus bewundern.
  703.  Als zweite Kontrollstruktur gibt es in DME den Befehl IFELSE bed dann sonst,
  704. wobei bed eine der oben genannten Bedingungen ist, dann eine Befehlsreihe,
  705. die ausgeführt wird, wenn die Bedingung wahr ist und sonst eine Befehlsreihe,
  706. die ausgeführt wird, wenn die Bedingung falsch ist.
  707.  Die letzte Kontrollstruktur, die die oben aufgeführten Bedingungen benützt,
  708. ist die while-Schleife WHILE bed bef. Dieser Befehl läßt sich wie folgt
  709. beschreiben : Solange bed wahr ist, führe die Befehlsreihe bef aus.
  710.  Eine weiter Schleife benötigt etwas andere Bedingungen. Es ist dies der
  711. Befehl REPEAT N bef. N ist entweder eine Zahl oder eine der folgenden
  712. Bedingungen :
  713. line    = die aktuelle Zahl der Zeilen wird als Anzahl der Wiederholungen
  714.           benutzt,
  715. lbot    = die Zahl der Zeilen bis zum Ende wird als Anzahl der Wiederholungen
  716.           benutzt,
  717. cleft   = die aktuelle Spaltenzahl wird als Anzahl der Wiederholungen
  718.           benutzt,
  719. cright  = die Zahl der Spalten bis zum Ende der Zeile wird als Anzahl der
  720.           Wiederholungen benutzt,
  721. tr      = es wird solange bef wiederholt, bis der Cursor die nächsten
  722.           Tabulatorposition erreicht hat,
  723. tb      = wie tr, nur nach vorne.
  724. Solange man CRTL-C nicht belegt hat, kann man damit eine Schleife
  725. unterbrechen. Bei einigen Fehlersituationen wird eine mit REPEAT begonnene
  726. Schleife abgebrochen, so etwa bei den Suchbefehlen, wenn der Suchstring
  727. nicht gefunden wird. Eine -1 als N entspricht unendlich ( oder zumindest
  728. der sehr großen Zahl FFFFFFFF im Sedezimalsystem ).
  729.  Ein Befehl, der eigentlich nichts mit Kontrollen zu tun hat, wird jetzt
  730. trotzdem in diesem Abschnitt besprochen. Es ist dies der Befehl TLATE, der
  731. hauptsächlich in Schleifenkonstruktionen benutzt wird. TLATE hat ein
  732. Argument. Dies ist eine Zahl, optional mit Vorzeichen + oder -. TLATE mit
  733. einer Zahl verwandelt das Zeichen unter dem Cursor in den Buchstaben, dessen
  734. ASCII-Darstellung der Zahl entspricht. Falls TLATE mit einer vorzeichenbe-
  735. hafteten Zahl aufgerufen wird, so wird zu der ASCII-Darstellung des Zeichens
  736. unter dem Cursor das Argument je nach Vorzeichen addiert oder subtrahiert.
  737.  Nun ein paar Beispiele, die sowohl die Kontrollstrukturen als auch TLATE
  738. etwas näher erläutern.
  739.  Bei den folgenden Befehlssequenzen ist es UNBEDINGT notwendig, daß diese
  740. in einer Zeile stehen. Durch MORE kann es geschehen, daß es so aussieht, als
  741. obe eine Befehlssequenz über mehrere Zeilen führt. Dies würde zu einem nicht
  742. erwünschten Ergebnis in DME führen !
  743. MAP `f1'    `WLEFT IF c=34 RIGHT IF c=39 RIGHT IF c=96 RIGHT IF cl `TLATE -32' WHILE ca RIGHT'
  744. Dieser Befehl belegt die Funktionstaste f1 mit einer Befehlssequenz, die den
  745. ersten Buchstaben des vorigen Wortes in einen Großbuchstaben umwandelt.
  746. MAP `f2'    `WLEFT IF c=34 RIGHT IF c=39 RIGHT IF c=96 RIGHT IF cu `TLATE +32' WHILE ca RIGHT'
  747. Diese Sequenz weist der Funktionstaste f2 eine Sequenz zu, die alle
  748. Buchstaben des vorherigen Wortes in Kleinbuchstaben umwandelt.
  749. MAP `f3'    `IF c=34 RIGHT IF c=39 RIGHT IF c=96 RIGHT WHILE ca `IF cl `TLATE -32' RIGHT''
  750. Die Taste f3 wird mit einer Befehlssequenz belegt, die alle folgenden
  751. Buchstaben innerhalb des aktuellen Wortes zu Großbuchstaben macht.
  752. MAP `f4'    `IFELSE t `RIGHT LEFT' `UNBLOCK BLOCK BLOCK UP BMOVE UNBLOCK' '
  753. Diese Befehlszeile bewirkt, daß f4 mit einer Befehlssequenz belegt ist, die
  754. die aktuelle Zeile um eine Zeile im Text nach oben befördert.
  755.  Die Befehle können ausprobiert werden, indem auf der Zeile mit der
  756. gewünschten Befehlssequenz zweimal der Befehl BLOCK eingegeben wird und dann
  757. der Befehl BSOURCE. Dies bringt die Zeile, die im Moment markiert ist, zur
  758. Ausführung. Natürlich muß dann noch die jeweilige Taste gedrückt werden, die
  759. belegt wurde, um einen sichtbaren Effekt zu erzielen.
  760.  
  761.                             REFERENZEN
  762.  
  763.  REF ist ein recht komplexer Befehl, der nur versierten DME-Benutzern zu
  764. empfehlen ist. Die Idee hinter REF ist die folgende : Wenn man Programme
  765. entwickelt, so möchte man unter Umständen einen Kommentarfile anlegen, so
  766. daß die Kommentare nicht im Quelltext des Programmes stehen. Dies soll mit
  767. REF erleichtert werden.
  768.  Für REF müssen zwei weitere Files angelegt werden. Zuerst ist da der File
  769. DME.REFS, der entweder im aktuellen Directory, auf S: oder auf DF0:, DF1:,
  770. DF2: oder DF3: steht ( in dieser Reihenfolge ). In diesem File stehen die
  771. Quellenangaben, die DME benutzt, um den Referenztext zu finden. Die Syntax
  772. der Quellenangaben ist die folgende :
  773. (keyword) (#lines) (file) (searchstring)
  774.    oder
  775. (keyword) (endstring) (file) (searchstring)
  776. keyword ist das Referenzwort,
  777. #lines die Anzahl der Referenzzeilen,
  778. file der Namen des Files, aus dem die Referenzzeilen genommen werden,
  779. searchstring ist der String, nach dem gesucht wird in file.
  780. Natürlich muß auch die Datei bereits eingetippt sein, aus der die Referenz-
  781. zeilen genommen werden.
  782.  Die Vorgehensweise läßt sich wohl am besten in einem Beispiel erläutern :
  783. Nehmen wir einmal an, wir haben in einem File das Wort
  784. AMIGA
  785. eingetippt.
  786.  
  787. In dem File DME.DREF steht die Zeile
  788. AMIGA 3 meine_refs.txt AMIGA
  789. und in dem File meine_refs.txt stehen die Zeilen
  790. ATARI Der ATARI ST ist ein gewöhnlicher Computer, der mit
  791. Bomben um sich schmeißt und trotz der hohen Rechenleistung
  792. seiner CPU kein Multitasking zuläßt.
  793.  
  794. AT Der IBM AT ist ein Rechner, der neben einem miesen
  795. Betriebssystem, nämlich MS-DOS, noch eine schlechte CPU
  796. bestitzt.
  797.  
  798. AMIGA Der COMMODORE AMIGA ist ein sehr guter Rechner. Er
  799. vereinigt große Rechenleistung mit einem hervoragenden
  800. MULTITASKING-Betriebssystem zu einem günstigen Preis.
  801.  
  802. VAX Die VAX von DEC bietet ebenfalls ein Rechner mit hoher
  803. Rechenleistung und MULTITASKING. Nur der hohe Preis vergällt
  804. Amateuren diesen Rechner.
  805. Wenn man nun im bearbeiteten Text über dem Wort AMIGA steht und den Befehl
  806. REF eingibt, so wird zuerst der File DME.REFS eingeladen und dort das
  807. Wort AMIGA gesucht, daß am Anfang der Zeile stehen muß. Aus dieser Zeile
  808. wird dann der Filename extrahiert, in dem die Referenzzeilen stehen. Dieser
  809. File wird geladen und gemäß den Angaben aus DME.REFS wird der Suchbegriff
  810. gesucht. Auch dieser Begriff muß am Anfang der Zeile stehen, um von DME
  811. gefunden zu werden ! Nach einer erfolgreichen Suche wird entweder die
  812. Anzahl der Zeilen oder bis zu einem in DME.REFS gemäß der Syntax bestimmten
  813. Suchbegriff in einem kleinen Fenster ausgegeben.
  814.  Bei uns würde dort in einem kleinen Fenster auch das gewünschte stehen.
  815.  Ein weiteres mögliches Einsatzgebiet des REF-Befehls könnte eine Online-
  816. Hilfe sein. Aber dies sollte sich jeder selbst überlegen.
  817.  
  818.                             DIVERSES
  819.  
  820.  Es folgen nun einige Befehle, die nicht in einen der vorigen Paragraphen
  821. passten, aber trotzdem eine paar Zeilen wert sind.
  822.  ESCIMM arg ist ein wichtiger Befehl für die Belegung von Tasten. Wenn ESCIMM
  823. aufgerufen wird, so wird die Kommandoeingabezeile geöffnet und das Argument
  824. arg hineingeschrieben. Der Benutzer muß dann den Rest von Hand eingeben.
  825.  Dies ist sinnvoll z.B. bei Befehlen, die ein Argument haben. Als Beispiel
  826. eignet sich hier FIND. Wenn man FIND auf eine Taste legt, so ist das
  827. Problem : Woher bekomme ich das Argument für FIND ? Als Ausweg bietet sich
  828. ESCIMM an. Man belegt eine Taste wie folgt :
  829. MAP `c-s' `ESCIMM `FIND ''
  830. Wenn nun CRTL-s aufgerufen wird, so erscheint FIND als Prompt in der
  831. Befehlseingabezeile.
  832.  Mit EXECUTE comm kann man ein DOS-Kommando abarbeiten. Die Ausgabe erscheint
  833. dann in dem Fenster, aus dem DME aufgerufen wurde. Beispiel :
  834. EXECUTE `DIR S:'
  835.  Die beiden Befehle PING n und PONG n dienen zur Festlegung von unsichtbaren
  836. Markierungen im Text. Mit PING n wird eine solche Markierung gesetzt, wobei
  837. n zwischen 0 und 9 sein darf. Mit PONG n wird eine vorher vereinbarte
  838. Markierung angesprungen.
  839.  Mit QUIT wird die Bearbeitung des Textes abgebrochen. Aber Vorsicht : Der
  840. Text wird dann nicht abgespeichert. Dagegen wird bei Betätigung des Schließ-
  841. Gagdets der Benutzer gewarnt und muß das Gadget ein zweites Mal betätigen, um
  842. DME verlassen zu können.
  843.  Mit c-esc kann die letzte Befehlseingabe wieder in die Befehlseingabezeile
  844. geholt werden. Daher sollte c-esc nicht anders belegt werden !
  845.  Mit SAVEMAP name und SAVESMAP name können die Tastaturbelegungen in der
  846. Datei name abgespeichert werden. Der Unterschied zwischen dne beiden Befehlen
  847. liegt darin, daß SAVESMAP die voreingestellten Belegungen mitabspeichert,
  848. SAVEMAP nicht. Mit UNMAP taste kann eine Taste von der Belegung befreit
  849. werden.
  850.  
  851.                                  SCHLUSS
  852.  
  853.  Ich hoffe, die Benutzung von DME wird durch diese paar Zeilen etwas
  854. vereinfacht. Vielleicht noch ein paar Anmerkungen :
  855.  Zu DME werden unter dem Directory support einige Tastaturbelegungen mitge-
  856. liefert. Man sollte sich diese aber genau anschauen, bevor man sie übernimmt,
  857. da einiges nicht sehr glücklich gelöst ist.
  858.  Wenn man genug von ED hat, so sollte man sich DME als ED unter dem Directory
  859. C: abspeichern. Dann kann man zwar ED nicht mehr benutzen ( dies ist kein
  860. großer Verlust ! ), aber dafür ist es bequemer. Außerdem gibt es einige
  861. Programme, die den Editor ED aufrufen. Wenn sich dahinter nun DME verbirgt,
  862. so merkt dies das Programm natürlich nicht, aber man kann immerhin mit einem
  863. guten Editor arbeiten.
  864.  Einige Befehle habe ich aus Zeitgründen nicht beschreiben können. Aber ich
  865. glaube, daß diese nicht so sehr wichtig sind. ( Wohl, weil ich sie noch
  866. nie benutzt habe. ) Die Beschreibung der ARexx-Möglichkeiten habe ich
  867. ausgelassen, da ich ARexx ( noch ) nicht besitze. Wer ARexx hat, kann ja mal
  868. ein paar Zeilen dazu schreiben und sie mir schicken. Ich würde mich sehr
  869. darüber freuen. Vielleicht wäre es ja auch möglich, daß der(die)jenige das
  870. Handbuch an dieser Stelle fortsetzt.
  871.  
  872.  Viel Spaß mit DME und der GetIt
  873.  
  874.       Peter
  875.  
  876.